﻿using System;

namespace NewRetail.Application.Components.TianQue.Model
{
    /// <summary>
    /// 支付请求入参
    /// </summary>
    public class TradePayInputDto
    {
        public string AuthCode { get; set; }
    }
    /// <summary>
    /// 支付结果查询请求入参
    /// </summary>
    public class TradeQueryInputDto
    {

    }
    /// <summary>
    /// 公共定义
    /// </summary>
    public class TqApiRequestBeanDto
    {
        /// <summary>
        /// 天阙平台机构编号
        /// </summary>
        public string orgId { get; set; }
        /// <summary>
        /// 业务数据
        /// </summary>
        public Object reqData { get; set; }
        /// <summary>
        /// 合作方系统生成的唯一请求ID，最大长度32位
        /// </summary>
        public string reqId { get; set; }
        /// <summary>
        /// 签名类型，默认值：RSA
        /// </summary>
        public string signType { get; set; }
        /// <summary>
        /// 请求时间戳，格式：yyyyMMddHHmmss
        /// </summary>
        public string timestamp { get; set; }
        /// <summary>
        /// 接口版本号，默认值：1.0
        /// </summary>
        public string version { get; set; }
        /// <summary>
        /// 签名字符串
        /// </summary>
        public string sign { get; set; }
    }
    /// <summary>
    /// 卡交易推送参数
    /// </summary>
    public class PosSendNotifyCardDto
    {
        /// <summary>
        /// 天阙平台唯一标识
        /// </summary>
        public string uuid { get; set; }
        /// <summary>
        /// 商户编号
        /// </summary>
        public string mno { get; set; }
        /// <summary>
        /// 天阙平台机构编号
        /// </summary>
        public string orgId { get; set; }
        /// <summary>
        /// 交易类型，枚举值：
        //0001 消费
        //0002 撤销
        //0003 预授权
        //0004 预授权撤销
        //0005 预授权完成
        //0006 预授权完成撤销
        //0007 冲正
        //0008 退货
        //0027 现金消费
        /// </summary>
        public string tranType { get; set; }
        /// <summary>
        /// 交易状态，枚举值：
        //S 成功
        //F 失败
        //Q 未支付
        /// </summary>
        public string tranSts { get; set; }
        /// <summary>
        /// 交易来源，枚举值：01 POS06 外部接入
        /// </summary>
        public string paySource { get; set; }
        /// <summary>
        /// 订单号
        /// </summary>
        public string ordNo { get; set; }
        /// <summary>
        /// 交易流水号
        /// </summary>
        public string tranSeqNo { get; set; }
        /// <summary>
        /// 原交易流水号
        /// </summary>
        public string ouuid { get; set; }
        /// <summary>
        /// 交易日期，格式：YYYYMMDD
        /// </summary>
        public string tranDt { get; set; }
        /// <summary>
        /// 交易时间，格式：HHmmss
        /// </summary>
        public string tranTm { get; set; }
        /// <summary>
        /// 卡号 加密
        /// </summary>
        public string cardNo { get; set; }
        /// <summary>
        /// 终端编号
        /// </summary>
        public string trmNo { get; set; }
        /// <summary>
        /// 批次号
        /// </summary>
        public string batNo { get; set; }
        /// <summary>
        /// 小票流水号
        /// </summary>
        public string posSeqNo { get; set; }
        /// <summary>
        /// 检索参考号
        /// </summary>
        public string searchNo { get; set; }
        /// <summary>
        /// 授权码
        /// </summary>
        public string authCode { get; set; }
        /// <summary>
        /// 支付方式
        /// </summary>
        public string payType { get; set; }
        /// <summary>
        /// 费率（单位%）
        /// </summary>
        public string mecFeeRate { get; set; }
        /// <summary>
        /// 借贷标识，枚举值：
        //00 借记卡
        //01 贷记卡
        //02 准贷记卡
        //03 预付卡
        //81 境外卡
        /// </summary>
        public string crdTyp { get; set; }
        /// <summary>
        /// 消费者id
        /// </summary>
        public string consumerId { get; set; }
        /// <summary>
        /// 支付渠道
        /// </summary>
        public string payChannals { get; set; }
        /// <summary>
        /// 交易金额（单位元）
        /// </summary>
        public string tranAmt { get; set; }
        /// <summary>
        /// 手续费金额（单位元）
        /// </summary>
        public string feeAmt { get; set; }
        /// <summary>
        /// 签名
        /// </summary>
        public string sign { get; set; }
        /// <summary>
        /// 优惠费率标识，枚举值
        //取值范围：
        //1 云闪付
        //说明：手机PAY的支付 1000以下的优惠费率 返回1 云闪付
        /// </summary>
        public string specialOffer { get; set; }
        /// <summary>
        /// 业务订单信息，POS订单支付业务返回
        /// </summary>
        public BizOrderDto bizOrderInfo { get; set; }
    }
    /// <summary>
    /// 码交易推送参数
    /// </summary>
    public class PosSendNotifyCodeDto
    {
        /// <summary>
        /// 业务响应码
        /// </summary>
        public string bizCode { get; set; }
        /// <summary>
        /// 业务响应信息
        /// </summary>
        public string bizMsg { get; set; }
        /// <summary>
        /// 响应时间戳
        /// </summary>
        public string timeStamp { get; set; }
        /// <summary>
        /// 业务数据签名结果
        /// </summary>
        public string sign { get; set; }
        /// <summary>
        /// 商户编号
        /// </summary>
        public string mno { get; set; }
        /// <summary>
        /// 商户订单号
        /// </summary>
        public string ordNo { get; set; }
        /// <summary>
        /// 天阙平台订单号
        /// </summary>
        public string uuid { get; set; }
        /// <summary>
        /// 交易支付完成时间，格式：YYYYMMDDHHmmss
        /// </summary>
        public string payTime { get; set; }
        /// <summary>
        /// 订单总金额(元)，格式：#######.##
        /// </summary>
        public string amt { get; set; }
        /// <summary>
        /// 支付渠道，枚举值
            //取值范围：
            //WECHAT 微信
            //ALIPAY 支付宝
            //UNIONPAY 银联
            //DCEP 数字人民币
        /// </summary>
        public string payType { get; set; }
        /// <summary>
        /// 交易方式，枚举值
            //取值范围：
            //00 主扫
            //01 被扫
            //02 微信公众号/支付宝服务窗/银联js支付/支付宝小程序
            //03 微信小程序
        /// </summary>
        public string payWay { get; set; }
        /// <summary>
        /// 终端号,上送必返. 根据支付渠道对应上游字段：微信device_info、支付宝terminal_id、银联termId   
        /// </summary>
        public string terminalId { get; set; }
        /// <summary>
        /// 原商户订单号.退款通知返回
        /// </summary>
        public string origOrdNo { get; set; }
        /// <summary>
        /// 原天阙订单号.退款通知返回
        /// </summary>
        public string origUuid { get; set; }
        /// <summary>
        /// 支付场景，枚举值
            //取值范围：
            //1 付款码
            //2 声波
            //3 刷脸
        /// </summary>
        public string scene { get; set; }
        /// <summary>
        /// 买家用户号
            //支付宝渠道：买家支付宝用户号buyer_user_id
            //微信渠道：微信平台的sub_openid
        /// </summary>
        public string buyerId { get; set; }
        /// <summary>
        /// 支付宝买家登录账号
        /// </summary>
        public string buyerAccount { get; set; }
        /// <summary>
        /// 微信/支付宝流水号
        /// </summary>
        public string transactionId { get; set; }
        /// <summary>
        /// 借贷标识，枚举值
            //取值范围：
            //1 借记卡
            //2 贷记卡
            //3 其他
        /// </summary>
        public string drType { get; set; }
        /// <summary>
        /// 消费者付款金额（单位：元）
        /// </summary>
        public string totalOffstAmt { get; set; }
        /// <summary>
        ///  商家入账金额（单位：元）包含手续费、预充值、平台补贴（优惠），不含免充值代金券（商家补贴）
        /// </summary>
        public string settleAmt { get; set; }
        /// <summary>
        /// 付款银行
        /// </summary>
        public string payBank { get; set; }
        /// <summary>
        /// 代金券金额（单位：元） 积分支付金额，优惠金额或折扣券的金额
        /// </summary>
        public string pointAmount { get; set; }
        /// <summary>
        /// 交易手续费率（单位：%）
        /// </summary>
        public string recFeeRate { get; set; }
        /// <summary>
        /// 交易手续费（单位：元）
        /// </summary>
        public string recFeeAmt { get; set; }
        /// <summary>
        ///  商家出款金额
        /// </summary>
        public string realRefundAmount { get; set; }
        /// <summary>
        /// 渠道商商户号
        /// </summary>
        public string channelId { get; set; }
        /// <summary>
        ///  子商户号
        /// </summary>
        public string subMechId { get; set; }
        /// <summary>
        /// 消费者到账金额
        /// </summary>
        public string refBuyerAmt { get; set; }
        /// <summary>
        /// 微信或支付宝的身份ID.  OPENID或USERID
        /// </summary>
        public string openid { get; set; }
        /// <summary>
        /// 活动类型，枚举值
            //取值范围：
            //00 线下标准
            //01 线上标准
            //02 蓝海
            //03 绿洲
            //04 线下缴费
            //05 线下保险
            //06 线下非赢利
            //07 高校食堂
            //08 私立院校
            //09 其他
            //10 教培机构
        /// </summary>
        public string activityNo { get; set; }
        /// <summary>
        /// 落单号  供退款使用
        /// </summary>
        public string sxfUuid { get; set; }
        /// <summary>
        /// 扩展字段  正交易上送则原路返回
        /// </summary>
        public string extend { get; set; }
        ///// <summary>
        ///// 优惠信息  正交易上送则原路返回
        ///// </summary>
        //public Object promotionDetail/refundDetail	 { get; set; }
        /// <summary>
        /// 天阙门店编号
        /// </summary>
        public string storeNum { get; set; }
        /// <summary>
        /// 清算日期
        /// </summary>
        public string clearDt { get; set; }
        /// <summary>
        /// 交易完成时间
        /// </summary>
        public string finishTime { get; set; }
        /// <summary>
        /// 切批时间
        /// </summary>
        public string settlementBatchNo { get; set; }
        /// <summary>
        /// 支付宝异步刷脸支付参数，枚举值
            //取值范围：
            //NORMAL_ASYNC_PAY
            //NEAR_REAL_TIME_ASYNC_PAY
        /// </summary>
        public string asyncPaymentMode { get; set; }
        ///// <summary>
        ///// 分期信息，枚举值
        //    //取值范围：
        //    //USER_INSTALL_NUM 分期数
        //    //FQ_AMOUNT 分期金额
        //    //如需使用请联系产品同学配置
        ///// </summary>
        //public JArry hbFqPayInfo { get; set; }
        ///// <summary>
        ///// 交易支付使用的资金渠道
        //    //仅支付宝支持
        //    //如需使用请联系产品同学配置
        ///// </summary>
        //public JArry fundBillList { get; set; }
        /// <summary>
        /// 业务订单信息，POS订单支付业务返回
        /// </summary>
        public BizOrderDto bizOrderInfo { get; set; }
        /// <summary>
        /// 天阙平台机构编号
        /// </summary>
        public string orgId { get; set; }
    }
    /// <summary>
    /// 业务订单信息，POS订单支付业务返回
    /// </summary>
    public class BizOrderDto
    {
        /// <summary>
        /// 业务订单类型
            //枚举值
            //01消费
            //02退货
        /// </summary>
        public string bizOrderType { get; set; }
        /// <summary>
        /// 商户业务订单号
            //业务订单类型为“01消费”时对应商户业务订单号
            //业务订单类型为“02退货”时对应商户退款业务订单号
        /// </summary>
        public string bizOrderNo { get; set; }
        /// <summary>
        /// 天阙业务订单号
            //业务订单类型为“01消费”时对应天阙业务订单号
            //业务订单类型为“02退货”时对应天阙退款业务订单号
        /// </summary>
        public string bizTqNo { get; set; }
        /// <summary>
        /// 原商户业务订单号
            //业务订单类型为“02退货”时返回
        /// </summary>
        public string origBizOrderNo { get; set; }
        /// <summary>
        /// 原天阙业务订单号
            //业务订单类型为“02退货”时返回
        /// </summary>
        public string origBizTqNo { get; set; }
        /// <summary>
        /// 业务订单状态，枚举值：
            //01未完成
            //02已完成
            //03已关闭
        /// </summary>
        public string bizOrderStatus { get; set; }
        /// <summary>
        /// 业务订单的总金额(元)，格式：#########.##
        /// </summary>
        public string bizAllAmt { get; set; }
        /// <summary>
        /// 业务订单已支付金额
            //业务订单类型为“01消费”时返回
            //业务订单当前实际已支付金额(元)，格式：#########.##
        /// </summary>
        public string bizOrderAmt { get; set; }
        /// <summary>
        /// 业务订单未支付金额
            //业务订单类型为“01消费”时返回
            //业务订单剩余未支付的金额(元)，格式：#########.##
        /// </summary>
        public string bizOrderBalance { get; set; }
        /// <summary>
        /// 业务订单已退款金额
            //业务订单类型为“01消费”时返回
            //业务订单累计已退款的金额(元)，格式：#########.##
        /// </summary>
        public string bizOrderRefundAmt { get; set; }
        /// <summary>
        /// 业务订单退款状态
            //业务订单类型为“01消费”时返回
            //枚举值：
            //01未退款
            //02部分退款
            //03全额退款
        /// </summary>
        public string bizOrderRefundType { get; set; }
        /// <summary>
        /// 业务订单的发起时间
        /// </summary>
        public string createTime { get; set; }
        /// <summary>
        /// 业务订单的完成时间
        /// </summary>
        public string finishTime { get; set; }
        /// <summary>
        /// 订单分账标识
            //业务订单类型为“01消费”时返回
            //异步分账类型，枚举值（默认值 01）
            //取值范围：
            //01 不分账
            //04 分账 （多次分账）
        /// </summary>
        public string ledgerAccountFlag { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        public string entend { get; set; }
    }

    /// <summary>
    /// 天阙POS订单收银台支付.生成订单发送到pos机入参
    /// </summary>
    public class PosOrderInput
    {
        /// <summary>
        /// 商户业务订单号，需保证在合作方系统中不重复 商户支付订单的业务号，一个业务订单可关联多笔支付订单（字母、数字、下划线）
        /// </summary>
        public string bizOrderNo { get; set; }
        /// <summary>
        /// 终端编号
        /// </summary>
        public string trmNo { get; set; }
        /// <summary>
        /// 订单总金额(元)，格式：#########.##
        /// </summary>
        public string bizAllAmt { get; set; }
        /// <summary>
        /// 订单标题，最大20长度，汉字、字母、符号等均算作1长度
        /// </summary>
        public string orderSubject { get; set; }
        
    }
    /// <summary>
    /// 查询Pos订单支付状态情况入参
    /// </summary>
    public class OnlinePosOrderQueryInput
    {
        /// <summary>
        /// 业务订单类型，枚举值 01 消费  02 退货
        /// </summary>
        public string bizOrderType { get; set; }
        /// <summary>
        /// 商户业务订单号。业务订单类型为01消费时：商户业务订单号，与天阙业务订单号二选一必送。业务订单类型为02退货时：商户退款业务订单号，与天阙退款业务订单号二选一必送
        /// </summary>
        public string bizOrderNo { get; set; }
        /// <summary>
        /// 天阙业务订单号。业务订单类型为01消费时：天阙业务订单号，与商户业务订单号二选一必送。业务订单类型为02退货时：天阙退款业务订单号，与商户退款业务订单号二选一必送
        /// </summary>
        public string bizTqNo { get; set; }
    }
    /// <summary>
    /// 查询Pos订单支付状态情况返回
    /// </summary>
    public class OnlinePosOrderQueryResponse
    {
        /// <summary>
        /// 商户编号
        /// </summary>
        public string mno { get; set; }
        /// <summary>
        /// 业务订单类型，枚举值 01 消费  02 退货
        /// </summary>
        public string bizOrderType { get; set; }
        /// <summary>
        /// 商户业务订单号。业务订单类型为“01消费”时对应商户业务订单号。业务订单类型为“02退货”时对应商户退款业务订单号
        /// </summary>
        public string bizOrderNo { get; set; }
        /// <summary>
        /// 天阙业务订单号。业务订单类型为“01消费”时对应天阙业务订单号。业务订单类型为“02退货”时对应天阙退款业务订单号
        /// </summary>
        public string bizTqNo { get; set; }
        /// <summary>
        /// 业务订单类型为“02退货”时返回，原商户业务订单号
        /// </summary>
        public string origBizOrderNo { get; set; }
        /// <summary>
        /// 业业务订单类型为“02退货”时返回，原天阙业务订单号
        /// </summary>
        public string origBizTqNo { get; set; }
        /// <summary>
        /// 业务订单状态，枚举值：01未知  02成功  03已关闭
        /// </summary>
        public string bizOrderStatus { get; set; }
        /// <summary>
        /// 业务订单总金额(元)，格式：#########.##
        /// </summary>
        public string bizAllAmt { get; set; }

        /// <summary>
        /// 业务订单已支付金额
        //业务订单类型为“01消费”时返回
        //业务订单当前实际支付的总金额(元)，格式：#########.##
        /// </summary>
        public string bizOrderAmt { get; set; }
        /// <summary>
        /// 业务订单未支付金额
        //业务订单类型为“01消费”时返回
        //业务订单剩余未支付的金额(元)，格式：#########.##
        /// </summary>
        public string bizOrderBalance { get; set; }
        /// <summary>
        /// 业务订单已退款金额
        //业务订单类型为“01消费”时返回
        //业务订单累计已退款的金额(元)，格式：#########.##
        /// </summary>
        public string bizOrderRefundAmt { get; set; }
        /// <summary>
        /// 业务订单退款状态
        //业务订单类型为“01消费”时返回
        //枚举值：01未退款  02部分退款  03全额退款
        /// </summary>
        public string bizOrderRefundType { get; set; }
        /// <summary>
        /// 终端号  该笔订单推送至POS的终端号，仅对应终端会收到这笔订单
        /// </summary>
        public string trmNo { get; set; }
        /// <summary>
        /// 业务订单类型为“01消费”时返回
        //异步分账类型，枚举值（默认值 01）取值范围：01 不分账  04 分账 （多次分账）
        /// </summary>
        public string ledgerAccountFlag { get; set; }
        /// <summary>
        /// 业务订单类型为“01消费”时返回
        //是否多次付款，枚举值（默认值 00）取值范围：00否  01 是
        /// </summary>
        public string manyPay { get; set; }
        /// <summary>
        /// 关联商户交易单号。业务订单类型为消费时，对应
        //支付业务订单关联的成功正交易商户订单号；
        //业务订单类型为退货时，对应
        //支付业务订单关联的成功返交易商户订单号；
        /// </summary>
        public string orderNo { get; set; }
    }
    /// <summary>
    /// 查询本地库支付情况入参
    /// </summary>
    public class LocalPosOrderQueryInput
    {
        /// <summary>
        /// 销售订单号
        /// </summary>
        public string flowNo { get; set; }
    }
}
